<?php
/**
 * Project:
 * File:        Strings.php
 *
 * @link 		http://.../lib
 * @copyright 	2007
 * @author 		ivan <ldmmyx@hotmail.com>
 * @version 	1.0
 * 
 * @ substr_cut($str_cut,$length = 65)
 */
class Strings
{
	function Strings()
	{
	}

	public function getCharNum($text)
	{
		$text	= trim($text);
		
		$return = '';
		$len 	= strlen($text);
		for($i = 0; $i < $len; $i++){
			$ch = ord($text[$i]);
			if($ch > 47 && $ch < 58 || $ch > 64 && $ch < 91 || $ch > 96 && $ch < 123)
				$return .= $text[$i];
			else
				$return .= '-';
		}
		
		$return	= $this->deleteSapces($return, '--', '');
		
		return $return;
	}
	
	public function deleteSapces($text, $search, $replace)
	{
		$pos = strrpos($text, $search);
		
		if ($pos === false) { // note: three equal signs
		    return $text;
		}else{
			while(true){
				$pos = strrpos($text, $search);
				if ($pos === false) { // note: three equal signs
					break;
				}else{
					$text = str_replace($search, $replace, $text);					
				}
			}
		}

		return $text;
	}
	
	function random($length)   
	{   
	    $string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	    
	    $random = '';
	    
	    $strlen = strlen($string);   
	  
	    for ($i=0; $i < $length; ++$i)   
	    {   
	        $random .= $string{mt_rand(0, $strlen-1)};     
	    }   
	  
	    return $random;   
	} 

	public function filterHtml($str)
	{
		$str=preg_replace("/\s+/", " ", $str); //过滤多余回车 
		$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格) 
		
		$str=preg_replace("/<\!--.*?-->/si","",$str); //注释 
		$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE 
		$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签 
		$str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签 
		$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签 
		$str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签 
		$str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签 
		$str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签 
		$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签 
		
		$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签 
		$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签 
		
		$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签 
		$str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签 
		
		$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签 
		$str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签 
		
		$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签 
		$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签 
		
		$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签 
		$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签 
		
		$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签 
		$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签 
		
		$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签 
		$str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签 
		$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签 
		$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签 
		$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签 
		$str=preg_replace("/&#/si","&＃",$str); //过滤script标签，如javAsCript:alert(
		
		return $str;
	}
}
?>
